[FWM306] AWS AppSync を使用した GraphQL API の構築のワークショップに参加してきました #AWSreInvent
製造ビジネステクノロジー部の田中孝明です。
AWS re:Invent 2024 の現地で AWS AppSync を使用した GraphQL API の構築のワークショップに参加してきたのでレポートします。
ワークショップ
内容
ワークショップで作る本屋のアプリケーションの構成です。
- GraphQL API データソースとリゾルバー を AWS AppSync に構築
- Backend は Amazon Aurora
- API のトークン取得は Amazon Cognito を利用
- AWS CDK で構築
今回から Cloud 9 ではなく VS Code Server を利用したワークショップになっていました。
AWS AppSync と Amazon Aurora の構築と認証
GraphQL のスキーマを設計。主に用意された CDK のコードを触りながらデプロイしていきます。
GraphQL API を構築し、名前を指定します。
Amazon Aurora の構築までは最初のステップになります。
認証されたユーザーにアクセスを許可するために Amazon Cognito の認証モードの Stack をデプロイ。
AWS AppSync の動作確認
サブスクリプションを使ってアプリケーションのライブ更新・プッシュ通知などを実装。今回は WebSocket を使って AWS AppSync のサブスクリプションがどのように機能するのか試しました。
まずは onCreateBook のサブスクリプションを AWS AppSync のコンソールから確認。
次にデータソースについて。既存の Book に 2 番目のデータソースを追加。書籍レビューを取得できるようにする HTTP データソースをセットアップ。今回は HTTP データソースでしたが、他にも RDB や AWS Lambda や Amazon Bedrock についても紹介されていました。
次に AWS AppSync リゾルバーについて。書籍レビューを取得するための新しいリゾルバーの追加を CDK でデプロイできるようにします。リゾルバーは、GraphQL とデータソース間のコネクターで、受信した GraphQL リクエストをデータソースの命令に変換する方法と、データソースからの応答を GraphQL 応答に変換する方法を AWS AppSync に指示します。
AWS Amplify での Hosting
ここまで構築されたアプリケーションを AWS Amplify で Hosting し、ブラウザからも確認できるようにします。
本のレビューが作成できるところまで試しました。
モニタリング
最後のセクションでは Amazon CloudWatch での監視と AWS X-ray での可観測性を試しました。
まとめ
データソースは限られていましたが、GraphQL を使ったアプリケーションの監視と可観測性を含めた構築の流れを一通り試すことができます。結構飛ばしながら進めたのですがワークショップの間のドキュメントでデータソースの種類など丁寧に説明されていたので三時間くらいかけてじっくりやるのが良さそうなワークショップです。